package com.shiguiwu.springmybatis.designpattern.visitor;

import com.shiguiwu.springmybatis.designpattern.visitor.impl.Parent;
import com.shiguiwu.springmybatis.designpattern.visitor.impl.Principal;
import lombok.extern.slf4j.Slf4j;

/**
 * @description: 访问者模式
 * 封装一些作用于某种数据结构中的各元素的操作，它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作
 * @author: stone
 * @date: Created by 2021/10/29 16:00
 * @version: 1.0.0
 * @pakeage: com.shiguiwu.springmybatis.designpattern.visitor
 */
@Slf4j
public class VisitorTests {

    public static void main(String[] args) {
        DataView dataView = new DataView();
        log.info("\r\n家长视角访问：");
        dataView.show(new Parent()); // 家⻓长
        log.info("\r\n校长视角访问：");
        dataView.show(new Principal()); // 校⻓
    }
}
